\hypertarget{structsc2_1_1_ability_data}{}\section{sc2\+:\+:Ability\+Data Struct Reference}
\label{structsc2_1_1_ability_data}\index{sc2\+::\+Ability\+Data@{sc2\+::\+Ability\+Data}}


Data about an ability.  




{\ttfamily \#include $<$sc2\+\_\+data.\+h$>$}

\subsection*{Public Types}
\begin{DoxyCompactItemize}
\item 
enum \hyperlink{structsc2_1_1_ability_data_a15aaa20bd058eeb35728e2eeff6518f6}{Target} \{ \newline
\hyperlink{structsc2_1_1_ability_data_a15aaa20bd058eeb35728e2eeff6518f6a6adf97f83acf6453d4a6a4b1070f3754}{Target\+::\+None} = 1, 
\hyperlink{structsc2_1_1_ability_data_a15aaa20bd058eeb35728e2eeff6518f6a2a3cd5946cfd317eb99c3d32e35e2d4c}{Target\+::\+Point} = 2, 
\hyperlink{structsc2_1_1_ability_data_a15aaa20bd058eeb35728e2eeff6518f6a19c562a36aeb455d09534f93b4f5236f}{Target\+::\+Unit} = 3, 
\hyperlink{structsc2_1_1_ability_data_a15aaa20bd058eeb35728e2eeff6518f6a6f98194de114e80cc9a4b2a36f81a073}{Target\+::\+Point\+Or\+Unit} = 4, 
\newline
\hyperlink{structsc2_1_1_ability_data_a15aaa20bd058eeb35728e2eeff6518f6a40d15a87a5c57aab72d805030ad20ce4}{Target\+::\+Point\+Or\+None} = 5
 \}\begin{DoxyCompactList}\small\item\em Type of target this ability applies to. \end{DoxyCompactList}
\end{DoxyCompactItemize}
\subsection*{Public Member Functions}
\begin{DoxyCompactItemize}
\item 
\mbox{\Hypertarget{structsc2_1_1_ability_data_a77a93314c1b4a6b1cbdc6e1af7dbd2c0}\label{structsc2_1_1_ability_data_a77a93314c1b4a6b1cbdc6e1af7dbd2c0}} 
\hyperlink{structsc2_1_1_ability_data_a77a93314c1b4a6b1cbdc6e1af7dbd2c0}{Ability\+Data} ()
\begin{DoxyCompactList}\small\item\em \hyperlink{structsc2_1_1_ability_data}{Ability\+Data} constructor. \end{DoxyCompactList}\item 
void \hyperlink{structsc2_1_1_ability_data_a974e180b290ad684b2806232ccb55b5c}{Read\+From\+Proto} (const S\+C2\+A\+P\+I\+Protocol\+::\+Ability\+Data \&ability\+\_\+data)
\item 
\mbox{\Hypertarget{structsc2_1_1_ability_data_a953b2d2ec2cf3aea11a468a433e53660}\label{structsc2_1_1_ability_data_a953b2d2ec2cf3aea11a468a433e53660}} 
std\+::string \hyperlink{structsc2_1_1_ability_data_a953b2d2ec2cf3aea11a468a433e53660}{Log} () const
\begin{DoxyCompactList}\small\item\em Serialize this ability to a string. \end{DoxyCompactList}\end{DoxyCompactItemize}
\subsection*{Public Attributes}
\begin{DoxyCompactItemize}
\item 
\mbox{\Hypertarget{structsc2_1_1_ability_data_a1ca4424f072e90cddb81b5fe3b0595f2}\label{structsc2_1_1_ability_data_a1ca4424f072e90cddb81b5fe3b0595f2}} 
bool \hyperlink{structsc2_1_1_ability_data_a1ca4424f072e90cddb81b5fe3b0595f2}{available}
\begin{DoxyCompactList}\small\item\em If true, the ability is available to the current mods/map. \end{DoxyCompactList}\item 
\mbox{\Hypertarget{structsc2_1_1_ability_data_a5ccb4a8292936f8bc0cda4f1febc3476}\label{structsc2_1_1_ability_data_a5ccb4a8292936f8bc0cda4f1febc3476}} 
\hyperlink{classsc2_1_1_s_c2_type}{Ability\+ID} \hyperlink{structsc2_1_1_ability_data_a5ccb4a8292936f8bc0cda4f1febc3476}{ability\+\_\+id}
\begin{DoxyCompactList}\small\item\em Stable ID. For a given ability, this value will be immutable throughout different patches. \end{DoxyCompactList}\item 
\mbox{\Hypertarget{structsc2_1_1_ability_data_a32213c23964c6803cca16bc5055861ff}\label{structsc2_1_1_ability_data_a32213c23964c6803cca16bc5055861ff}} 
std\+::string \hyperlink{structsc2_1_1_ability_data_a32213c23964c6803cca16bc5055861ff}{link\+\_\+name}
\begin{DoxyCompactList}\small\item\em Catalog (game data xml) name of the ability. \end{DoxyCompactList}\item 
\mbox{\Hypertarget{structsc2_1_1_ability_data_a915bb3b60f7b3a664c13636292c64aae}\label{structsc2_1_1_ability_data_a915bb3b60f7b3a664c13636292c64aae}} 
uint32\+\_\+t \hyperlink{structsc2_1_1_ability_data_a915bb3b60f7b3a664c13636292c64aae}{link\+\_\+index}
\begin{DoxyCompactList}\small\item\em Catalog (game data xml) index of the ability. \end{DoxyCompactList}\item 
\mbox{\Hypertarget{structsc2_1_1_ability_data_a866b35972f5337e031215963d5fca922}\label{structsc2_1_1_ability_data_a866b35972f5337e031215963d5fca922}} 
std\+::string \hyperlink{structsc2_1_1_ability_data_a866b35972f5337e031215963d5fca922}{button\+\_\+name}
\begin{DoxyCompactList}\small\item\em Name of the button for the command card. \end{DoxyCompactList}\item 
\mbox{\Hypertarget{structsc2_1_1_ability_data_a9d7420bdffeed5e35f28abb9d397b0de}\label{structsc2_1_1_ability_data_a9d7420bdffeed5e35f28abb9d397b0de}} 
std\+::string \hyperlink{structsc2_1_1_ability_data_a9d7420bdffeed5e35f28abb9d397b0de}{friendly\+\_\+name}
\begin{DoxyCompactList}\small\item\em In case the button name is not descriptive. \end{DoxyCompactList}\item 
\mbox{\Hypertarget{structsc2_1_1_ability_data_a5e8389aab78797e9e8f4f88150ba6a76}\label{structsc2_1_1_ability_data_a5e8389aab78797e9e8f4f88150ba6a76}} 
std\+::string \hyperlink{structsc2_1_1_ability_data_a5e8389aab78797e9e8f4f88150ba6a76}{hotkey}
\begin{DoxyCompactList}\small\item\em UI hotkey. \end{DoxyCompactList}\item 
\mbox{\Hypertarget{structsc2_1_1_ability_data_a26ac48da5fd45e38e541250294438bb4}\label{structsc2_1_1_ability_data_a26ac48da5fd45e38e541250294438bb4}} 
uint32\+\_\+t \hyperlink{structsc2_1_1_ability_data_a26ac48da5fd45e38e541250294438bb4}{remaps\+\_\+to\+\_\+ability\+\_\+id}
\begin{DoxyCompactList}\small\item\em This ability id may be represented by the given more generic id. \end{DoxyCompactList}\item 
\mbox{\Hypertarget{structsc2_1_1_ability_data_a94d9523f96fc6497b46fa2d1355e03b5}\label{structsc2_1_1_ability_data_a94d9523f96fc6497b46fa2d1355e03b5}} 
std\+::vector$<$ uint32\+\_\+t $>$ \hyperlink{structsc2_1_1_ability_data_a94d9523f96fc6497b46fa2d1355e03b5}{remaps\+\_\+from\+\_\+ability\+\_\+id}
\begin{DoxyCompactList}\small\item\em Other abilities remapped to this generic ability. \end{DoxyCompactList}\item 
\mbox{\Hypertarget{structsc2_1_1_ability_data_a2351270150739e40d945e21fb801bedf}\label{structsc2_1_1_ability_data_a2351270150739e40d945e21fb801bedf}} 
\hyperlink{structsc2_1_1_ability_data_a15aaa20bd058eeb35728e2eeff6518f6}{Target} \hyperlink{structsc2_1_1_ability_data_a2351270150739e40d945e21fb801bedf}{target}
\begin{DoxyCompactList}\small\item\em Determines if a point, unit, both or none is required as a target. \end{DoxyCompactList}\item 
\mbox{\Hypertarget{structsc2_1_1_ability_data_aa3cb5f43be280f584aa8246ee15f2f64}\label{structsc2_1_1_ability_data_aa3cb5f43be280f584aa8246ee15f2f64}} 
bool \hyperlink{structsc2_1_1_ability_data_aa3cb5f43be280f584aa8246ee15f2f64}{allow\+\_\+minimap}
\begin{DoxyCompactList}\small\item\em Can be cast in the minimap. (Not implemented) \end{DoxyCompactList}\item 
\mbox{\Hypertarget{structsc2_1_1_ability_data_af80a0130a5c15ade16adeb9c415b89c0}\label{structsc2_1_1_ability_data_af80a0130a5c15ade16adeb9c415b89c0}} 
bool \hyperlink{structsc2_1_1_ability_data_af80a0130a5c15ade16adeb9c415b89c0}{allow\+\_\+autocast}
\begin{DoxyCompactList}\small\item\em Autocast can be set. \end{DoxyCompactList}\item 
\mbox{\Hypertarget{structsc2_1_1_ability_data_a252839497c027c2278ca126405d53da9}\label{structsc2_1_1_ability_data_a252839497c027c2278ca126405d53da9}} 
bool \hyperlink{structsc2_1_1_ability_data_a252839497c027c2278ca126405d53da9}{is\+\_\+building}
\begin{DoxyCompactList}\small\item\em Requires placement to construct a building. \end{DoxyCompactList}\item 
\mbox{\Hypertarget{structsc2_1_1_ability_data_a600be2fc1d258608994d9658f6488c8c}\label{structsc2_1_1_ability_data_a600be2fc1d258608994d9658f6488c8c}} 
float \hyperlink{structsc2_1_1_ability_data_a600be2fc1d258608994d9658f6488c8c}{footprint\+\_\+radius}
\begin{DoxyCompactList}\small\item\em If the ability is placing a building, give the radius of the footprint. \end{DoxyCompactList}\item 
\mbox{\Hypertarget{structsc2_1_1_ability_data_a9fe8873ca4353862d1e2425526628ec1}\label{structsc2_1_1_ability_data_a9fe8873ca4353862d1e2425526628ec1}} 
bool \hyperlink{structsc2_1_1_ability_data_a9fe8873ca4353862d1e2425526628ec1}{is\+\_\+instant\+\_\+placement}
\begin{DoxyCompactList}\small\item\em Placement next to an existing structure, e.\+g., an add-\/on like a Tech Lab. \end{DoxyCompactList}\item 
\mbox{\Hypertarget{structsc2_1_1_ability_data_ac70e65166f5a291b28da3c97c71833b4}\label{structsc2_1_1_ability_data_ac70e65166f5a291b28da3c97c71833b4}} 
float \hyperlink{structsc2_1_1_ability_data_ac70e65166f5a291b28da3c97c71833b4}{cast\+\_\+range}
\begin{DoxyCompactList}\small\item\em Range unit can cast ability without needing to approach target. \end{DoxyCompactList}\end{DoxyCompactItemize}


\subsection{Detailed Description}
Data about an ability. 

\subsection{Member Enumeration Documentation}
\mbox{\Hypertarget{structsc2_1_1_ability_data_a15aaa20bd058eeb35728e2eeff6518f6}\label{structsc2_1_1_ability_data_a15aaa20bd058eeb35728e2eeff6518f6}} 
\index{sc2\+::\+Ability\+Data@{sc2\+::\+Ability\+Data}!Target@{Target}}
\index{Target@{Target}!sc2\+::\+Ability\+Data@{sc2\+::\+Ability\+Data}}
\subsubsection{\texorpdfstring{Target}{Target}}
{\footnotesize\ttfamily enum \hyperlink{structsc2_1_1_ability_data_a15aaa20bd058eeb35728e2eeff6518f6}{sc2\+::\+Ability\+Data\+::\+Target}\hspace{0.3cm}{\ttfamily [strong]}}



Type of target this ability applies to. 

\begin{DoxyEnumFields}{Enumerator}
\raisebox{\heightof{T}}[0pt][0pt]{\index{None@{None}!sc2\+::\+Ability\+Data@{sc2\+::\+Ability\+Data}}\index{sc2\+::\+Ability\+Data@{sc2\+::\+Ability\+Data}!None@{None}}}\mbox{\Hypertarget{structsc2_1_1_ability_data_a15aaa20bd058eeb35728e2eeff6518f6a6adf97f83acf6453d4a6a4b1070f3754}\label{structsc2_1_1_ability_data_a15aaa20bd058eeb35728e2eeff6518f6a6adf97f83acf6453d4a6a4b1070f3754}} 
None&There is no target, applies to self. \\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{Point@{Point}!sc2\+::\+Ability\+Data@{sc2\+::\+Ability\+Data}}\index{sc2\+::\+Ability\+Data@{sc2\+::\+Ability\+Data}!Point@{Point}}}\mbox{\Hypertarget{structsc2_1_1_ability_data_a15aaa20bd058eeb35728e2eeff6518f6a2a3cd5946cfd317eb99c3d32e35e2d4c}\label{structsc2_1_1_ability_data_a15aaa20bd058eeb35728e2eeff6518f6a2a3cd5946cfd317eb99c3d32e35e2d4c}} 
Point&Target is a point. \\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{Unit@{Unit}!sc2\+::\+Ability\+Data@{sc2\+::\+Ability\+Data}}\index{sc2\+::\+Ability\+Data@{sc2\+::\+Ability\+Data}!Unit@{Unit}}}\mbox{\Hypertarget{structsc2_1_1_ability_data_a15aaa20bd058eeb35728e2eeff6518f6a19c562a36aeb455d09534f93b4f5236f}\label{structsc2_1_1_ability_data_a15aaa20bd058eeb35728e2eeff6518f6a19c562a36aeb455d09534f93b4f5236f}} 
Unit&Target is another unit. \\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{Point\+Or\+Unit@{Point\+Or\+Unit}!sc2\+::\+Ability\+Data@{sc2\+::\+Ability\+Data}}\index{sc2\+::\+Ability\+Data@{sc2\+::\+Ability\+Data}!Point\+Or\+Unit@{Point\+Or\+Unit}}}\mbox{\Hypertarget{structsc2_1_1_ability_data_a15aaa20bd058eeb35728e2eeff6518f6a6f98194de114e80cc9a4b2a36f81a073}\label{structsc2_1_1_ability_data_a15aaa20bd058eeb35728e2eeff6518f6a6f98194de114e80cc9a4b2a36f81a073}} 
Point\+Or\+Unit&Target can be a point or another unit. \\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{Point\+Or\+None@{Point\+Or\+None}!sc2\+::\+Ability\+Data@{sc2\+::\+Ability\+Data}}\index{sc2\+::\+Ability\+Data@{sc2\+::\+Ability\+Data}!Point\+Or\+None@{Point\+Or\+None}}}\mbox{\Hypertarget{structsc2_1_1_ability_data_a15aaa20bd058eeb35728e2eeff6518f6a40d15a87a5c57aab72d805030ad20ce4}\label{structsc2_1_1_ability_data_a15aaa20bd058eeb35728e2eeff6518f6a40d15a87a5c57aab72d805030ad20ce4}} 
Point\+Or\+None&Target can be a point or no target. \\
\hline

\end{DoxyEnumFields}


\subsection{Member Function Documentation}
\mbox{\Hypertarget{structsc2_1_1_ability_data_a974e180b290ad684b2806232ccb55b5c}\label{structsc2_1_1_ability_data_a974e180b290ad684b2806232ccb55b5c}} 
\index{sc2\+::\+Ability\+Data@{sc2\+::\+Ability\+Data}!Read\+From\+Proto@{Read\+From\+Proto}}
\index{Read\+From\+Proto@{Read\+From\+Proto}!sc2\+::\+Ability\+Data@{sc2\+::\+Ability\+Data}}
\subsubsection{\texorpdfstring{Read\+From\+Proto()}{ReadFromProto()}}
{\footnotesize\ttfamily void sc2\+::\+Ability\+Data\+::\+Read\+From\+Proto (\begin{DoxyParamCaption}\item[{const S\+C2\+A\+P\+I\+Protocol\+::\+Ability\+Data \&}]{ability\+\_\+data }\end{DoxyParamCaption})}

Serialize this ability entry from the .proto file (used internally). 
\begin{DoxyParams}{Parameters}
{\em ability\+\_\+data} & The proto entry for this ability. \\
\hline
\end{DoxyParams}


The documentation for this struct was generated from the following file\+:\begin{DoxyCompactItemize}
\item 
include/sc2api/sc2\+\_\+data.\+h\end{DoxyCompactItemize}
